import sys
from pathlib import Path  # 用于路径处理（跨系统兼容）

# ==============================================================================
# 2. 数据库配置与初始化：配置数据库连接、创建数据库实例
# ==============================================================================
# 获取当前文件所在路径位置
CONFIG_PATH = Path(__file__).parent
# 确保instance文件夹存在（存储动态数据，如数据库文件，Flask官方推荐目录）
INSTANCE_FOLDER = CONFIG_PATH / 'instance'
INSTANCE_FOLDER.mkdir(exist_ok=True)  # exist_ok=True：文件夹已存在时不报错，避免重复创建

# 按操作系统区分SQLite连接前缀（跨系统兼容关键）
# Windows系统：sqlite:/// + 绝对路径（3个斜杠）
# Mac/Linux系统：sqlite://// + 绝对路径（4个斜杠）
SQLITE_PREFIX = 'sqlite:///' if sys.platform.startswith('win') else 'sqlite:////'


class Config:
    # 配置数据库连接URI（SQLAlchemy需要的核心配置），拼接数据库文件最终路径：项目根目录/instance/data.db）
    SQLALCHEMY_DATABASE_URI = SQLITE_PREFIX + str(INSTANCE_FOLDER / 'data.db')
    # 关闭SQLAlchemy的修改跟踪功能（减少性能开销，官方推荐关闭）
    SQLALCHEMY_TRACK_MODIFICATIONS = False
